/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package ht2;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

/**
 * Este programa acepta una expresion 
 * matematica en formato postfix y devuelve el resultado.
 * @author  Josué Barrientos - 09049
 */
public class HT2 {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        System.out.println("HOJA DE TRABAJO 2");
        System.out.println("JOSUE BARRIENTOS - 09049");      
        System.out.println("INSTRUCCIONES: INGRESE EXPRESION EN FORMATO"
                + "POSTFIX. UTILICE SOLO NUMEROS  DE 1 - 9 Y LOS OPERADORES "
                + "+, -, *, /. ");
        System.out.println("EJEMPLO: 4 2 + 3 5 1 -  * +");        
        System.out.println("INGRESE EXPRESION A EVALUAR: ");
        
        //  open up standard input
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String expresion = null;

        try {
            expresion = br.readLine();
         } catch (IOException ioe) {
           System.out.println("ERROR VUELVA A INTENTAR");
            System.exit(1);
        }
        
        StackVector<Integer> Pila=new StackVector<>();
                
        for(char c : expresion.toCharArray()) {
            if (Character.isDigit(c)){
               Pila.push(Integer.valueOf(c)-48);
               } 
            switch (c){
               case '+': Pila.push(Pila.pop() + Pila.pop());
                   break;
               case '-': Pila.push(-(Pila.pop() - Pila.pop()));
                   break;
               case '*': Pila.push(Pila.pop() * Pila.pop()) ;
                   break;
               case '/': 
                   int denom=Pila.pop();
                   Pila.push(Pila.pop()/denom);
                   break;
               default: break;                   
           }                
         } 
        
        System.out.println("EL RESULTADO ES: "+Pila.pop()); 
        
        try {
            br.readLine();
         } catch (IOException ioe) {
           System.out.println("ERROR VUELVA A INTENTAR");
            System.exit(1);
        }   
   }
}
